This invention relates generally to storage systems associated with computer systems and more particularly to providing a method and apparatus improving controller and cache resource utilization in a cached disk array storage system.
As it is known in the art, computer systems generally include a central processing unit, a memory subsystem and a storage subsystem. According to a networked or enterprise model of a computer system, the storage subsystem associated with or in addition to a local computer system, may include a large number of independent storage devices or disks housed in a single enclosure. This array of storage devices is typically connected to several computers (or hosts) via dedicated cabling or via a network. Such a model allows for the centralization of data which is to be shared among many users and also allows a single point of maintenance for the storage functions associated with the many computer systems.
One type of storage system known in the art is one which includes a number of disk storage devices configured as Redundant Array of Independent Disks or an array (sometimes referred to as RAID). Such a system may include several arrays of storage devices. In addition to the arrays of storage devices, typical storage systems include several types of controllers for controlling the various aspects of the data transfers associated with the storage system. One type of controller is a host controller and provides the interface between the host computers and the storage system. Another type of controller is a disk controller. There may be one or more disk controllers for each array of storage devices in a storage system. The disk controller manages the transfer of data to and from its associated array of drives.
In addition to the controllers described above, advanced storage systems, such as the SYMMETRIX.RTM. family of storage systems manufactured by EMC Corporation, Hopkenton, Mass. may include a very large memory which is coupled to each of the controllers in the system. The memory may be used as a staging area (or cache) for the data transfers between the storage devices and the host computers and may provide a communications path between the various controllers. Such systems provide superior performance to non-cache storage systems.
In order to achieve maximum performance from storage systems like those described above, each of the controllers should be kept busy doing useful work at all times when there are outstanding data requests. It would be advantageous therefore to provide a storage system wherein the host controllers and disk controllers communicate in such a way as to maximize the amount of data transferred during any given time period during which there are outstanding requests for reads or writes of data.